/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Non Drug Agent Entity</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * <!-- begin-model-doc -->
 * abstDomain: A19699 (C-0-T16040-A16041-A19698-A19699-cpt)
 * <!-- end-model-doc -->
 * @see org.hl7.v3.V3Package#getNonDrugAgentEntity()
 * @model extendedMetaData="name='NonDrugAgentEntity'"
 * @generated
 */
public enum NonDrugAgentEntity implements Enumerator {
	/**
	 * The '<em><b>NDA16</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA16_VALUE
	 * @generated
	 * @ordered
	 */
	NDA16(0, "NDA16", "NDA16"),

	/**
	 * The '<em><b>NDA17</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA17_VALUE
	 * @generated
	 * @ordered
	 */
	NDA17(1, "NDA17", "NDA17"),

	/**
	 * The '<em><b>NDA01</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA01_VALUE
	 * @generated
	 * @ordered
	 */
	NDA01(2, "NDA01", "NDA01"),

	/**
	 * The '<em><b>NDA02</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA02_VALUE
	 * @generated
	 * @ordered
	 */
	NDA02(3, "NDA02", "NDA02"),

	/**
	 * The '<em><b>NDA08</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA08_VALUE
	 * @generated
	 * @ordered
	 */
	NDA08(4, "NDA08", "NDA08"),

	/**
	 * The '<em><b>NDA03</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA03_VALUE
	 * @generated
	 * @ordered
	 */
	NDA03(5, "NDA03", "NDA03"),

	/**
	 * The '<em><b>NDA12</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA12_VALUE
	 * @generated
	 * @ordered
	 */
	NDA12(6, "NDA12", "NDA12"),

	/**
	 * The '<em><b>NDA10</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA10_VALUE
	 * @generated
	 * @ordered
	 */
	NDA10(7, "NDA10", "NDA10"),

	/**
	 * The '<em><b>NDA04</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA04_VALUE
	 * @generated
	 * @ordered
	 */
	NDA04(8, "NDA04", "NDA04"),

	/**
	 * The '<em><b>NDA13</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA13_VALUE
	 * @generated
	 * @ordered
	 */
	NDA13(9, "NDA13", "NDA13"),

	/**
	 * The '<em><b>NDA09</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA09_VALUE
	 * @generated
	 * @ordered
	 */
	NDA09(10, "NDA09", "NDA09"),

	/**
	 * The '<em><b>NDA05</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA05_VALUE
	 * @generated
	 * @ordered
	 */
	NDA05(11, "NDA05", "NDA05"),

	/**
	 * The '<em><b>NDA14</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA14_VALUE
	 * @generated
	 * @ordered
	 */
	NDA14(12, "NDA14", "NDA14"),

	/**
	 * The '<em><b>NDA06</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA06_VALUE
	 * @generated
	 * @ordered
	 */
	NDA06(13, "NDA06", "NDA06"),

	/**
	 * The '<em><b>NDA15</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA15_VALUE
	 * @generated
	 * @ordered
	 */
	NDA15(14, "NDA15", "NDA15"),

	/**
	 * The '<em><b>NDA11</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA11_VALUE
	 * @generated
	 * @ordered
	 */
	NDA11(15, "NDA11", "NDA11"),

	/**
	 * The '<em><b>NDA07</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NDA07_VALUE
	 * @generated
	 * @ordered
	 */
	NDA07(16, "NDA07", "NDA07");

	/**
	 * The '<em><b>NDA16</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA16</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA16
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA16_VALUE = 0;

	/**
	 * The '<em><b>NDA17</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA17</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA17
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA17_VALUE = 1;

	/**
	 * The '<em><b>NDA01</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA01</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA01
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA01_VALUE = 2;

	/**
	 * The '<em><b>NDA02</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA02</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA02
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA02_VALUE = 3;

	/**
	 * The '<em><b>NDA08</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA08</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA08
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA08_VALUE = 4;

	/**
	 * The '<em><b>NDA03</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA03</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA03
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA03_VALUE = 5;

	/**
	 * The '<em><b>NDA12</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA12</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA12
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA12_VALUE = 6;

	/**
	 * The '<em><b>NDA10</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA10</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA10
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA10_VALUE = 7;

	/**
	 * The '<em><b>NDA04</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA04</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA04
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA04_VALUE = 8;

	/**
	 * The '<em><b>NDA13</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA13</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA13
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA13_VALUE = 9;

	/**
	 * The '<em><b>NDA09</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA09</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA09
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA09_VALUE = 10;

	/**
	 * The '<em><b>NDA05</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA05</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA05
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA05_VALUE = 11;

	/**
	 * The '<em><b>NDA14</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA14</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA14
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA14_VALUE = 12;

	/**
	 * The '<em><b>NDA06</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA06</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA06
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA06_VALUE = 13;

	/**
	 * The '<em><b>NDA15</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA15</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA15
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA15_VALUE = 14;

	/**
	 * The '<em><b>NDA11</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA11</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA11
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA11_VALUE = 15;

	/**
	 * The '<em><b>NDA07</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NDA07</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NDA07
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NDA07_VALUE = 16;

	/**
	 * An array of all the '<em><b>Non Drug Agent Entity</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final NonDrugAgentEntity[] VALUES_ARRAY =
		new NonDrugAgentEntity[] {
			NDA16,
			NDA17,
			NDA01,
			NDA02,
			NDA08,
			NDA03,
			NDA12,
			NDA10,
			NDA04,
			NDA13,
			NDA09,
			NDA05,
			NDA14,
			NDA06,
			NDA15,
			NDA11,
			NDA07,
		};

	/**
	 * A public read-only list of all the '<em><b>Non Drug Agent Entity</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<NonDrugAgentEntity> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Non Drug Agent Entity</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static NonDrugAgentEntity get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			NonDrugAgentEntity result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Non Drug Agent Entity</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static NonDrugAgentEntity getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			NonDrugAgentEntity result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Non Drug Agent Entity</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static NonDrugAgentEntity get(int value) {
		switch (value) {
			case NDA16_VALUE: return NDA16;
			case NDA17_VALUE: return NDA17;
			case NDA01_VALUE: return NDA01;
			case NDA02_VALUE: return NDA02;
			case NDA08_VALUE: return NDA08;
			case NDA03_VALUE: return NDA03;
			case NDA12_VALUE: return NDA12;
			case NDA10_VALUE: return NDA10;
			case NDA04_VALUE: return NDA04;
			case NDA13_VALUE: return NDA13;
			case NDA09_VALUE: return NDA09;
			case NDA05_VALUE: return NDA05;
			case NDA14_VALUE: return NDA14;
			case NDA06_VALUE: return NDA06;
			case NDA15_VALUE: return NDA15;
			case NDA11_VALUE: return NDA11;
			case NDA07_VALUE: return NDA07;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private NonDrugAgentEntity(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //NonDrugAgentEntity
